package com.zw.mes.module.verify.mapper;

import com.zw.mes.module.prodtaskmanager.entity.BaseData;
import com.zw.mes.module.verify.model.OrgModel;
import com.zw.mes.module.verify.model.VerifyInfoModel;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @className: VerifyMapper
 * @description: 审核配置持久层
 * @author： 徐一贺 18341916590
 * @date： 2021/4/10 16:42
 * @office: 智能控制设计科
 * @research institute： 智能控制设计所
 * @department： 机械设计院
 * @company: 辽宁忠旺机械设备制造有限公司
 * @group： 忠旺集团
 * @version: 1.0
 */
@Repository
public interface VerifyMapper {
    /**
     * @methodName: findBaseDataByBadaTyp
     * @description: 根据 badaTyp 获取未删除的数据
     * @param: badaTyp
     * @return： java.util.List<com.zw.mes.module.prodtaskmanager.entity.BaseData>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/10 16:43
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<BaseData> findBaseDataByBadaTyp(String badaTyp);

    /**
     * @methodName: selectOrgList
     * @description: 获取权限架构表
     * @param:
     * @return： java.util.List<com.zw.mes.module.verify.model.OrgModel>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 8:25
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<OrgModel> selectOrgList(String name);

    /**
     * @methodName: findOrgByName
     * @description: 部门名称唯一验证
     * @param: name
     * @return： com.zw.mes.module.verify.model.OrgModel
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 8:46
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    OrgModel findByName(String name);
    /**
     * @methodName: update
     * @description: 修改部门
     * @param: org
     * @return： int
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 9:44
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    int update(OrgModel org);

    /**
     * @methodName: save
     * @description: 插入审核架构
     * @param: org
     * @return： int
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 9:44
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    int save(OrgModel org);

    /**
     * @methodName: updateStatusByIdWithRecursion
     * @description: 删除
     * @param: id
     * @param: status
     * @return： int
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 9:45
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    int updateStatusByIdWithRecursion(@Param("id") Integer id, @Param("status") int status);

    /**
     * @methodName: findByCondition
     * @description: 获取审核流程定义表
     * @param: verify
     * @return： java.util.List<com.zw.mes.module.verify.model.VerifyInfoModel>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 9:45
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<VerifyInfoModel> findByCondition(VerifyInfoModel verify);
    /**
     * @methodName: saveVerify
     * @description: 保存审核流程定义
     * @param: verify
     * @return： java.lang.Integer
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 9:46
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer saveVerify(VerifyInfoModel verify);
    /**
     * @methodName: updateVerify
     * @description: 更新审核流程定义
     * @param: verify
     * @return： inIntegert
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 9:47
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    Integer updateVerify(VerifyInfoModel verify);

    /**
     * @methodName: selectLevel
     * @description: 获取审核级别
     * @param:
     * @return： java.util.List<com.zw.mes.module.verify.model.VerifyInfoModel>
     * @exception：
     * @author： 徐一贺 tel:18341916590
     * @designer： 陈欣，盖世奇
     * @leader： 陈欣 tel:18104194240
     * @date： 2021/4/12 9:50
     * @office: 智能控制设计科
     * @research institute： 智能控制设计所
     * @department： 机械设计院
     * @company: 辽宁忠旺机械设备制造有限公司
     * @group： 忠旺集团
     * @version: 1.0
     */
    List<BaseData> selectLevel();
}
